package com.order.itemcategoryproject.controller;

import com.order.itemcategoryproject.pojo.dArcItemPic;
import com.order.itemcategoryproject.pojo.dArcStaff;
import com.order.itemcategoryproject.service.dArcItemPicService;
import com.order.itemcategoryproject.service.dArcStaffService;
import com.order.itemcategoryproject.utils.AjaxResult;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;

import static com.order.itemcategoryproject.utils.ParseUrl.getUrl;

@RestController
@RequestMapping("/pic")
public class dArcItemPicController {

    @Autowired
    private dArcItemPicService dArcItemPicService;
    @Autowired
    private dArcStaffService dArcStaffService;


    /**
     * 根据商品编号以及备注信息更新当前商品图片信息
     *
     * @param itemId
     * @param clbz
     * @return
     */
    @PutMapping("/updatePicNotesById/{itemId}/{clbz}")
    public AjaxResult updateItemPicInfoByIdAndBz(@PathVariable String itemId,
                                                 @PathVariable String clbz,
                                                 HttpServletRequest request) {
        String queryString = request.getQueryString();
        String staffID = getUrl(queryString, "StaffID");

        // 客户名称
        String StaffName = null;
        if (StringUtils.isBlank(itemId) || StringUtils.isBlank(clbz) || StringUtils.isEmpty(staffID)) {
            return AjaxResult.error("参数未被定义!!!!!");
        }
        // 根据客户代码获取当前客户信息
        dArcStaff staffInfoByStaId = dArcStaffService.getStaffInfoByStaId(staffID);
        // 首先获取到当前图片状态是否已经被修改
        // 获取当前图片对象
        dArcItemPic itemPic = dArcItemPicService.getItemPicByItemId(itemId);
        if (ObjectUtils.isEmpty(itemPic)) {
            return AjaxResult.error("为获取到当前商品图片对象，请检查是否已经上传图片进行维护.");
        }

        if (ObjectUtils.isNotEmpty(staffInfoByStaId)) {
            StaffName = staffInfoByStaId.getStaffName();
        }

        // 这里证明当前对象不为空，证明已经维护起来，那么这个时候我们就可以获取状态
        String reallyBz = null;
        if (StringUtils.isNotBlank(itemPic.getCLZT())) {
            if ("000".equals(itemPic.getCLZT())) {
                // 证明是初始状态，那么此时我们应该更新当前状态以及备注 客户代码: 备注信息
                reallyBz = StaffName + ":" +clbz;
                int effectLine = dArcItemPicService.updateItemPicInfoByItemId(itemId, reallyBz);
                if (effectLine > 0) {
                    return AjaxResult.success("已将你对图片的建议提交，稍后将会处理.");
                } else {
                    return AjaxResult.error("提交失败.");
                }
            } else if ("001".equals(itemPic.getCLZT())) {
                // 获取到当前备注信息
                reallyBz = itemPic.getBz() + " #" + StaffName + ":" + clbz;
                int effectLine = dArcItemPicService.updateItemPicByItemIdAndClbz(itemId, reallyBz);
                if (effectLine > 0) {
                    return AjaxResult.success("已将你对图片的建议提交，稍后将会处理.");
                } else {
                    return AjaxResult.error("提交失败.");
                }
            } else {
                return AjaxResult.error("");
            }
        } else {
            return AjaxResult.error("当前数据有误!!!!!");
        }
    }
}
